Some organizations desire the ability to efficiently distribute tasks to consumers of those tasks. This allows an organization to quickly match the right task with the right consumer. With a limited number of tasks and consumers in a distribution environment, this may be accomplished relatively easily. However, as the number of tasks and consumers increases, distributing tasks becomes more and more difficult to achieve in an efficient manner.
For example, for a small number of tasks, distributing a task to a consumer of the task may be easily performed. An organization may look at the requirements for a task and match the task to a consumer that is most appropriate for that task. This may be repeated for all tasks, until all of tasks are distributed to consumers. However, for a large number of tasks and consumers, it may be inefficient to look at the requirements for each task and the capabilities of each consumer to match the tasks with the consumers. In addition, as tasks and consumers are added and removed, and the rate at which they are added or removed increases, the distribution environment needs the ability to handle the changing volume and speed of the task matching.
Compounding the problem is that there needs to be some sort of matching mechanism to match the tasks to the consumers. If the matching criteria do not change, then an organization only needs to resolve the above problem of scaling. However, where new matching criteria are required, the matching mechanism must also be able to handle these new criteria. This presents the problem of having to handle new criteria while matching a large number of tasks and consumers, which is not a trivial issue.
Therefore, there exists ample opportunity for improvement in technologies related to task distribution over a heterogeneous system.